package com.ruoyi.user.mapper;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.user.domain.TbUser;
import com.ruoyi.matchmaker.domain.TbMatchmaker;

/**
 * 管理用户Mapper接口
 *
 * @author ruoyi
 * @date 2025-07-29
 */
public interface TbUserMapper extends BaseMapper<TbUser>
{
    /**
     * 查询管理用户
     *
     * @param userId 管理用户主键
     * @return 管理用户
     */
    public TbUser selectTbUserByUserId(Long userId);

    /**
     * 查询管理用户列表
     *
     * @param tbUser 管理用户
     * @return 管理用户集合
     */
    public List<TbUser> selectTbUserList(TbUser tbUser);

    /**
     * 新增管理用户
     *
     * @param tbUser 管理用户
     * @return 结果
     */
    public int insertTbUser(TbUser tbUser);

    /**
     * 修改管理用户
     *
     * @param tbUser 管理用户
     * @return 结果
     */
    public int updateTbUser(TbUser tbUser);

    /**
     * 删除管理用户
     *
     * @param userId 管理用户主键
     * @return 结果
     */
    public int deleteTbUserByUserId(Long userId);

    /**
     * 批量删除管理用户
     *
     * @param userIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTbUserByUserIds(Long[] userIds);

    /**
     * 批量删除红娘信息
     *
     * @param userIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTbMatchmakerByUserIds(Long[] userIds);

    /**
     * 批量新增红娘信息
     *
     * @param tbMatchmakerList 红娘信息列表
     * @return 结果
     */
    public int batchTbMatchmaker(List<TbMatchmaker> tbMatchmakerList);


    /**
     * 通过管理用户主键删除红娘信息信息
     *
     * @param userId 管理用户ID
     * @return 结果
     */
    public int deleteTbMatchmakerByUserId(Long userId);

    /**
     * 检查红娘真实姓名是否唯一
     *
     * @param realName 真实姓名
     * @return 红娘信息
     */
    public TbMatchmaker checkMatchmakerRealNameUnique(String realName);

    /**
     * 检查红娘身份证号是否唯一
     *
     * @param idCardNo 身份证号
     * @return 红娘信息
     */
    public TbMatchmaker checkMatchmakerIdCardUnique(String idCardNo);

    /**
     * 检查红娘联系电话是否唯一
     *
     * @param phone 联系电话
     * @return 红娘信息
     */
    public TbMatchmaker checkMatchmakerPhoneUnique(String phone);

    /**
     * 检查用户手机号是否唯一
     *
     * @param phone 手机号
     * @return 用户信息
     */
    public TbUser checkUserPhoneUnique(String phone);

    /**
     * 检查用户昵称是否唯一
     *
     * @param nickname 昵称
     * @return 用户信息
     */
    public TbUser checkUserNicknameUnique(String nickname);

    /**
     * 检查用户第三方平台ID是否唯一
     *
     * @param openId 第三方平台ID
     * @return 用户信息
     */
    public TbUser checkUserOpenIdUnique(String openId);

    /**
     * 根据红娘ID查询红娘信息
     *
     * @param matchmakerId 红娘ID
     * @return 红娘信息
     */
    public TbMatchmaker selectTbMatchmakerByMatchmakerId(Long matchmakerId);
}
